<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 纯函数：1.不改变原数组（没有副作用）2.返回值是返回一个数组
        const arr = [10, 20, 30, 40];


        // concat 在原数组的基础上再加一个新数组并拼接起来
        const arr1 = arr.concat([50, 60, 70]);
        // arr不会发生任何变化


        // map() 方法返回一个新数组,新数组中的元素为原始数组中的每个元素调用函数处理后得到的值
        const arr2 = arr.map(num => num * 10);


        // filter()过滤方法
        const arr3 = arr.filter(num => num > 25);


        // slice 可以类似实现深拷贝
        const arr4 = arr.slice();


        // 非纯：
        // forEach some every reduce
    </script>
</body>

</html>